
package com.e885.util.numeric;

import java.util.Random;

/**
 * 有關亂數的 util<br>
 * <br>
 * Copyright: Copyright (c) 2001-2008<br>
 * Company: E885 Group
 * 
 * @author Eric.Kao(gau168.gau@msa.hinet.net)
 * @version 1.0
 */
public class RandomUtil
{
	private static Random random = new Random();

	/**
	 * 取得整數亂數, 預設值為 0-9
	 * 
	 * @return 取得整數亂數
	 */
	public static Integer getIntegerNumber()
	{
		return getIntegerNumber( 10 );
	}

	/**
	 * 取得 Double 亂數, 預設值為 0.00-9.99
	 * 
	 * @param dot 取得小數點的位數
	 * @return 取得 Double 亂數
	 */
	public static Double getDoubleNumber( int dot )
	{
		return getDoubleNumber( 10, dot );
	}

	/**
	 * 取得整數亂數, 依 <code>number</code>設定而改變, 如: number 設定 為 98, 那麼取出值的範圍在 0-97
	 * 
	 * @param number 設定取出亂數值的範圍
	 * @return 取出整數亂數, 依 <code>number</code> 定義值來取出範圍
	 */
	public static Integer getIntegerNumber( int number )
	{
		return new Integer( random.nextInt( number ) );
	}

	/**
	 * 取得 Double 亂數, 依 <code>number</code>設定而改變, 如: number 設定 為 98, 那麼取出值的範圍在 0.00-97.99
	 * 
	 * @param number 設定取出亂數值的範圍
	 * @param dot 取得小數點的位數
	 * @return 取得 Double 亂數, 依 <code>number</code> 定義值來取出範圍
	 */
	public static Double getDoubleNumber( int number, int dot )
	{
		return new Double( ( ( int )( ( random.nextInt( number ) + random.nextDouble() ) * Math.pow( 10.0, dot ) ) ) / Math.pow( 10.0, dot ) );
	}
}
